import { IPSWFInteractiveProcess } from './ipswfinteractive-process';
import { IPSWFLink } from './ipswflink';
import { IPSWFLinkRole } from './ipswflink-role';

/**
 *
 * 继承父接口类型值[IAACTION]
 * @export
 * @interface IPSWFInteractiveLink
 */
export interface IPSWFInteractiveLink extends IPSWFLink {
  /**
   * 操作表单标记
   * @type {string}
   */
  formCodeName: string;

  /**
   * 源流程处理
   *
   * @type {IPSWFInteractiveProcess}
   */
  getFromPSWFProcess(): IPSWFInteractiveProcess | null;

  /**
   * 源流程处理
   *
   * @type {IPSWFInteractiveProcess}
   */
  get fromPSWFProcess(): IPSWFInteractiveProcess | null;

  /**
   * 源流程处理（必须存在）
   *
   * @type {IPSWFInteractiveProcess}
   */
  getFromPSWFProcessMust(): IPSWFInteractiveProcess;

  /**
   * 移动端操作表单标记
   * @type {string}
   */
  mobFormCodeName: string;

  /**
   * 移动端操作视图标记
   * @type {string}
   */
  mobViewCodeName: string;

  /**
   * 操作角色集合
   *
   * @type {IPSWFLinkRole[]}
   */
  getPSWFLinkRoles(): IPSWFLinkRole[] | null;

  /**
   * 操作角色集合
   *
   * @type {IPSWFLinkRole[]}
   */
  get psWFLinkRoles(): IPSWFLinkRole[] | null;

  findPSWFLinkRole(objKey: any): IPSWFLinkRole | null;

  /**
   * 操作视图标记
   * @type {string}
   */
  viewCodeName: string;
}
